const express = require('express')

//对密码进行 md5 加密 插件
// const md5 = require('blueimp-md5')

const router = express.Router()
//引入mongoose 数据库设计的数据结构
const model = require('./model')
const User = model.getModel('user')

const _filter = {'pwd': 0, '_v': 0}

router.get('/list',function(req, res){
    // User.remove({}, function(req, res){})

    const { type } = req.query
    User.find({type:type},function(err, data){
        return res.json({code:0, data:data})
    })


})
router.post('/update',function(req,res){
    const userid = req.cookies.userid
    if(!userid){
        return res.json({code:1})  // dict转成str
    }

    const body = req.body  //获取post 提交的数据
    User.findByIdAndUpdate(userid,body, function(err,data){
        const doc = Object.assign({},{  //将多个对象合成一个对象
            user: data.user,
            type: data.type
        },body)
        return res.json({code:0, data:doc})

    })
})

router.post('/register', function(req, res){
    // console.log(res.body) //拿到提交的数据
    const {user, pwd, type} = req.body //es6 语法
    User.findOne({user: user}, function(err,data){
        //如果能查到用户，说明用户已经注册过，不可以重复注册
        if(data){
            return res.json({code: 1, msg: '当前用户已存在'})
        }
        //如果没有查到用户，即可注册
        //save的用法  new User(body).save(function (err, user) {  
        const UserModel = new User({user, type, pwd})
        UserModel.save(function(err,data){
            if(err){
                return res.json({code: 1, msg: '服务器忙'})
            }
            const {user, type, _id} = data
            res.cookie('userid', _id)
            return res.json({code:0, data: {user, type, _id}})
        })
    })
})

router.post('/login', function(req, res){

    const { user, pwd } = req.body  //{ user, pwd } 这种写法是接受指定的参数
    //先从数据库找是否时注册过的信息
    User.findOne({user:user, pwd:pwd}, _filter, function(err, data){
        if(!data){
            return res.json({code:1, msg: '用户名或者密码错误'})
        } 
        res.cookie('userid', data._id)
        return res.json({code: 0, data: data})
    })
})


router.get('/info',function(req, res){
    //读取cookie
    const {userid} = req.cookies
    if(!userid) {
        return res.json({code: 0})
    }
   User.findOne({_id: userid},_filter,function(err, data){
       if(err){
           return res.json({code:1, msg: '服务器忙'})
       }
       if(data) {
           return res.json({code:0, data: data})
       }
   })
})

function md5Pwd(pwd){
    const salt = 'chengxiangxiang_..././'
    return utils.md5(utils.md5(pwd + salt))
}


module.exports = router